// 测试格子的坐标系统。

vec2 fixUV(vec2 cood){
  return 3.*(2.*cood.xy-iResolution.xy)/min(iResolution.x,iResolution.y);
}

void mainImage(out vec4 fragColor,in vec2 fragCoord){
  vec2 vUv=fixUV(fragCoord);
  
  vec3 color=vec3(0.);
  
  vec2 cell=fract(vUv);
  
  // 测试<-.5不起作用
  // if(cell.x<-.5){
    //   color=vec3(1.);
  // }
  // 这里<0.5的测试可知，区间被画成了多个0到1的范围。
  // fract是转化为0～1，不包括-1～0
  // if(cell.x<.5){
    //   color=vec3(1.);
  // }
  
  // 简单的理解，fwidth为最小宽度，而且是个正数，类似于0.001。
  // 在这里cell.x的最小值为0，下面判断赋值就是把0～0.001之间的像素设成白色，于是就画了一条白色的线。
  // 更直白的说，下面判断就是在0的右侧画一条竖线。
  if(cell.x<=fwidth(vUv.x)){
    color=vec3(1.);
  }
  // 上面的判断，假如cell.x最小值为-0.5，那么就会把-0.5到0.01区间全部涂白
  
  // cell.y的最小值为0，fwidth(vUv.y)就是在0.0的上方画一条横线
  if(cell.y<=fwidth(vUv.y)){
    color=vec3(1.);
  }
  if(abs(vUv.x)<=fwidth(vUv.x)){
    color=vec3(0.,1.,0.);
  }
  fragColor=vec4(color,1);
}